Micron Document
🎖️GitЯра🎖️


Displaying Raw • Download

feature/node/src/commonTest/kotlin/org/meshtastic/feature/node/metrics/FormatBytesTest.kt 520fa717a938fd84682403b41f57d9f7e1ef49ef (520fa717) Text, 2.63 KB

T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.feature.node.metrics

Tff7b72import T7ee787kotlin.test.Test
Tff7b72import T7ee787kotlin.test.assertEquals

T8b949e/** Tests for [formatBytes] — the pure function that formats byte counts into human-readable strings. */
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffMagicNumberTa5d6ff"Tb4b4b4)
Tff7b72class T56d364FormatBytesTest Tb4b4b4{

Tf0883e@Test
Tff7b72fun Td2a8ffzero_bytesTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff0 BTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff0LTb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffsmall_byte_valuesTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff1 BTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff1LTb4b4b4)Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff512 BTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff5T79c0ff1T79c0ff2LTb4b4b4)Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff1023 BTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff1T79c0ff0T79c0ff2T79c0ff3LTb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffkilobyte_boundaryTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff1 KBTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff1T79c0ff0T79c0ff2T79c0ff4LTb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffkilobyte_with_decimalsTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// 1536 bytes = 1.5 KB
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff1.5 KBTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff1T79c0ff5T79c0ff3T79c0ff6LTb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffmegabyte_boundaryTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff1 MBTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff1T79c0ff0T79c0ff2T79c0ff4L Tff7b72* T79c0ff1T79c0ff0T79c0ff2T79c0ff4Tb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffmegabyte_with_decimalsTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// 1.5 MB = 1572864 bytes
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff1.5 MBTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff1Te6edf3_572_864LTb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffgigabyte_boundaryTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff1 GBTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff1T79c0ff0T79c0ff2T79c0ff4L Tff7b72* T79c0ff1T79c0ff0T79c0ff2T79c0ff4 Tff7b72* T79c0ff1T79c0ff0T79c0ff2T79c0ff4Tb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffgigabyte_with_decimalsTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// 2.5 GB
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff2.5 GBTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(Tb4b4b4(T79c0ff2.5 Tff7b72* T79c0ff1T79c0ff0T79c0ff2T79c0ff4 Tff7b72* T79c0ff1T79c0ff0T79c0ff2T79c0ff4 Tff7b72* T79c0ff1T79c0ff0T79c0ff2T79c0ff4Tb4b4b4)Tb4b4b4.Te6edf3toLongTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffnegative_bytes_returns_naTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ffN/ATa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(Tff7b72-T79c0ff1LTb4b4b4)Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ffN/ATa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(Tff7b72-T79c0ff1T79c0ff0T79c0ff2T79c0ff4LTb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8fflarge_valuesTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// 100 GB
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff100 GBTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff1T79c0ff0T79c0ff0L Tff7b72* T79c0ff1T79c0ff0T79c0ff2T79c0ff4 Tff7b72* T79c0ff1T79c0ff0T79c0ff2T79c0ff4 Tff7b72* T79c0ff1T79c0ff0T79c0ff2T79c0ff4Tb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffcustom_decimal_places_zeroTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// 1536 bytes = 1.5 KB, with 0 decimal places → 2 KB (rounded)
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff2 KBTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff1T79c0ff5T79c0ff3T79c0ff6LTb4b4b4, Te6edf3decimalPlaces Tff7b72= T79c0ff0Tb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffcustom_decimal_places_oneTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// 1536 bytes = 1.5 KB, with 1 decimal place → 1.5 KB
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ff1.5 KBTa5d6ff"Tb4b4b4, Te6edf3formatBytesTb4b4b4(T79c0ff1T79c0ff5T79c0ff3T79c0ff6LTb4b4b4, Te6edf3decimalPlaces Tff7b72= T79c0ff1Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tb4b4b4}

Served by rngit 1.5.0 - Generated in 0.05s